home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Textfiles / aol / aimh.txt next >
Text File  |  1999-03-05  |  16KB  |  349 lines

  1. My apologies if this was posted more than once.
  2. I found it on the web and found it very interesting, so I thought I would
  3. share it with all of you.
  4.  
  5. *****************************************************************************   
  6. *          _/_/_/_/_/_/ _/_/      _/_/ _/_/_/_/_/_/ _/_/_/_/_/ _/_/_/_/_/_/ *
  7. *         _/_/_/_/_/_/ _/_/      _/_/ _/_/_/_/_/_/ _/_/_/_/_/ _/_/_/_/_/_/  *
  8. *        _/_/    _/_/ _/_/      _/_/ _/_/          _/_/          _/_/       *
  9. *       _/_/    _/_/ _/_/      _/_/ _/_/           _/_/         _/_/        *
  10. *      _/_/    _/_/ _/_/      _/_/ _/_/            _/_/        _/_/         *
  11. * _/_/_/_/_/  _/_/ _/_/  _/  _/_/ _/_/_/_/_/_/     _/_/       _/_/          *
  12. *_/_/_/_/_/  _/_/ _/_/ _/_/ _/_/ _/_/_/_/_/_/      _/_/      _/_/           *
  13. *   _/_/    _/_/ _/_/_/  _/_/_/ _/_/               _/_/     _/_/            *
  14. *  _/_/    _/_/ _/_/_/  _/_/_/ _/_/                _/_/    _/_/             *
  15. * _/_/_/_/_/_/ _/_/_/  _/_/_/ _/_/_/_/_/_/  _/_/_/_/_/_/  _/_/              *
  16. *_/_/_/_/_/_/ _/_/_/  _/_/_/ _/_/_/_/_/_/  _/_/_/_/_/_/  _/_/               *
  17. *                                                                           *
  18. *                       _/_/_/_/_/_/_/_/_/_/_/_/                            *
  19. *                                                                           *
  20. *                _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/                       *
  21. *                                                                           *
  22. *                  This has been brought to you by ...Qw*sT...              *
  23. *                                                                           *
  24. *****************************************************************************
  25.  
  26.                        How I Cracked AIM's Password Encryption
  27.                                         11.23.98
  28.  
  29.  
  30. AIM is America OnLine's Instant Messenger. It's a nice free program that gives
  31. non-AOLers the ability to send IM's. It does waste a lot of bandwidth by 
  32. downloading ads while your idle. I think I've fixed that by simply removing the
  33.  "Idle Time" extension. We'll see if that works.
  34.  
  35. Anyway, AIM allows the user to store Screen Names and passwords for each user. 
  36. It stored in the directory
  37. Hard Disk/System Folder/Preferences/AOL Instant Messengerô/Users/'ScreenName'/'ScreenName'
  38. where 'ScreenName' is the users Screen Name. There is one file per user. A user
  39.  file looks something like this:
  40.  
  41. _____________________________________________________________________________
  42.  
  43. [User=dumbshit]
  44. SavePassword=On
  45. Password=FFFF01HDLGDLCEBEHELCDDCOBO
  46. TimeStamps=Off
  47. PermitTransientUser=On
  48. PermitAdminUser=On
  49. PermitAIMPayUser=On
  50. PermitAIMFreeUser=On
  51. PermitAOLUser=On
  52. ShowIdleTime=Off
  53. ShowMemberSince=Off
  54. AutoConnect=Off
  55. ConfirmSignOff=Off
  56. ReturnSendsIM=On
  57. UseKnockKnock=On
  58. AutoReconnect=On
  59. PrivacyLookup=NoAccountInfo
  60. Logging=Off
  61. ProxyEnabled=Off
  62. ProxyDoesDNS=Off
  63. ProxyProtocol=SOCKS4
  64. DirectoryAllowWebAccess=Off
  65. MagnificationLevel=100%
  66. PermitDeny=PermitOnlyBuddies
  67.  
  68. [Audio=dumbshit]
  69. PlaySounds=On
  70. SpeakMessages=Off
  71. SpeakNames=Off
  72. SpeechVoice=
  73. Signing on=Connecting
  74. Signed on=Welcome
  75. Signing off=Goodbye
  76. Sending a message=Send IM
  77. New message arrives=Receive 1st IM
  78. Message arrives=Receive IM
  79. Buddy Signs on=Indigo
  80. Buddy Signs off=Buddy Off
  81. Blocking a user=Block
  82. Warning a user=Warn
  83. Warned by someone=Warned
  84.  
  85. [Idle=dumbshit]
  86. Enabled=On
  87. Msg=Please leave a message...
  88.  
  89. [Away=dumbshit]
  90. Current=---> This is an automated response. Leave a message.
  91.  
  92. [BuddyGroup=dumbshit's friends]
  93. Name=bigshit
  94. Name=lilshit
  95. Name=noshit
  96.  
  97. _____________________________________________________________________________
  98.  
  99.  
  100. In this case 'dumbshit' is the Screen Name. As you can see the password is encrypted.
  101. The password will only be stored in the pref's file if the user turns on the 'save
  102. password'
  103. option otherwise your out of luck.
  104.  
  105. So, I fed the program some passwords and recorded the result of the encrypting process.
  106. Here's what I got:
  107.  
  108. _____________________________________________________________________________
  109.  
  110. INPUT:          OUTPUT:
  111.  
  112.             1234 FFFF01HDLGDLCE
  113.       1234567890 FFFF01HDLGDLCEBEHELCDDCOBO     
  114.       5432167890 FFFF01HHLADLCCBAHELCDDCOBO
  115.       0987654321 FFFF01HCLNDACHBHHHLBDICFBP
  116.  
  117. 1234567890abcdef FFFF01HDLGDLCEBEHELCDDCOBODMNIBHIMLFMH
  118. a1b2c3d4e5f6g7h8 FFFF01CDLFGKCCECHBOBDPHCBLDLIMBDNPLIMI
  119.  
  120. BBBBBBBBBBBBBBBB FFFF01AAMGEKFCGDAAMHEJFFGMBPPIDGKKJCOD
  121. BBB0000000000000 FFFF01AAMGEKCABBHCLFDLCHBOGNIKEENIOAJB
  122.  
  123.             0000 FFFF01HCLEDICA
  124.             1111 FFFF01HDLFDJCB
  125.             2222 FFFF01HALGDKCC
  126.             3333 FFFF01HBLHDLCD
  127.             4444 FFFF01HGLADMCE
  128.             5555 FFFF01HHLBDNCF
  129.             6666 FFFF01HELCDOCG
  130.             7777 FFFF01HFLDDPCH
  131.             8888 FFFF01HKLMDACI
  132.             9999 FFFF01HLLNDBCJ
  133.  
  134.             aaaa FFFF01CDOFGJHB
  135.             AAAA FFFF01ADMFEJFB
  136. _____________________________________________________________________________
  137.  
  138. Since the number '4' was converted to 'CE' in both of these:
  139.             1234 FFFF01HDLGDLCE
  140.       1234567890 FFFF01HDLGDLCEBEHELCDDCOBO     
  141. I deduced that each character was encrypted depending on where it was found
  142. in the string (First character, or second character, or third character, etc.)
  143. and had no effect on what the other characters would be. This is important 
  144. because if changing one character would change the entire encrypted string, 
  145. it would be a lot harder to decipher.
  146.  
  147. Then I fed it some more passwords and recorded what they looked like encrypted.
  148. Here's what I got:
  149.  
  150. _____________________________________________________________________________
  151.  
  152. INPUT:          OUTPUT:
  153.  
  154. 0000000000000000 FFFF01HCLEDICABBHCLFDLCHBOGNIKEENIOAJB
  155. 1111111111111111 FFFF01HDLFDJCBBAHDLEDKCGBPGMILEFNJOBJA
  156. 2222222222222222 FFFF01HALGDKCCBDHALHDJCFBMGPIIEGNKOCJD
  157. 3333333333333333 FFFF01HBLHDLCDBCHBLGDICEBNGOIJEHNLODJC
  158. 4444444444444444 FFFF01HGLADMCEBFHGLBDPCDBKGJIOEANMOEJF
  159. 5555555555555555 FFFF01HHLBDNCFBEHHLADOCCBLGIIPEBNNOFJE
  160. 6666666666666666 FFFF01HELCDOCGBHHELDDNCBBIGLIMECNOOGJH
  161. 7777777777777777 FFFF01HFLDDPCHBGHFLCDMCABJGKINEDNPOHJG
  162. 8888888888888888 FFFF01HKLMDACIBJHKLNDDCPBGGFICEMNAOIJJ
  163. 9999999999999999 FFFF01HLLNDBCJBIHLLMDCCOBHGEIDENNBOJJI
  164.  
  165. AAAAAAAAAAAAAAAA FFFF01ADMFEJFBGAADMEEKFGGPBMPLDFKJJBOA
  166. BBBBBBBBBBBBBBBB FFFF01AAMGEKFCGDAAMHEJFFGMBPPIDGKKJCOD
  167. CCCCCCCCCCCCCCCC FFFF01ABMHELFDGCABMGEIFEGNBOPJDHKLJDOC
  168. DDDDDDDDDDDDDDDD FFFF01AGMAEMFEGFAGMBEPFDGKBJPODAKMJEOF
  169. EEEEEEEEEEEEEEEE FFFF01AHMBENFFGEAHMAEOFCGLBIPPDBKNJFOE
  170. FFFFFFFFFFFFFFFF FFFF01AEMCEOFGGHAEMDENFBGIBLPMDCKOJGOH
  171. GGGGGGGGGGGGGGGG FFFF01AFMDEPFHGGAFMCEMFAGJBKPNDDKPJHOG
  172. HHHHHHHHHHHHHHHH FFFF01AKMMEAFIGJAKMNEDFPGGBFPCDMKAJIOJ
  173. IIIIIIIIIIIIIIII FFFF01ALMNEBFJGIALMMECFOGHBEPDDNKBJJOI
  174. JJJJJJJJJJJJJJJJ FFFF01AIMOECFKGLAIMPEBFNGEBHPADOKCJKOL
  175. KKKKKKKKKKKKKKKK FFFF01AJMPEDFLGKAJMOEAFMGFBGPBDPKDJLOK
  176. LLLLLLLLLLLLLLLL FFFF01AOMIEEFMGNAOMJEHFLGCBBPGDIKEJMON
  177. MMMMMMMMMMMMMMMM FFFF01APMJEFFNGMAPMIEGFKGDBAPHDJKFJNOM
  178. NNNNNNNNNNNNNNNN FFFF01AMMKEGFOGPAMMLEFFJGABDPEDKKGJOOP
  179. OOOOOOOOOOOOOOOO FFFF01ANMLEHFPGOANMKEEFIGBBCPFDLKHJPOO
  180. PPPPPPPPPPPPPPPP FFFF01BCNEFIEAHBBCNFFLEHHOANOKCELIIAPB
  181. QQQQQQQQQQQQQQQQ FFFF01BDNFFJEBHABDNEFKEGHPAMOLCFLJIBPA
  182. RRRRRRRRRRRRRRRR FFFF01BANGFKECHDBANHFJEFHMAPOICGLKICPD
  183. SSSSSSSSSSSSSSSS FFFF01BBNHFLEDHCBBNGFIEEHNAOOJCHLLIDPC
  184. TTTTTTTTTTTTTTTT FFFF01BGNAFMEEHFBGNBFPEDHKAJOOCALMIEPF
  185. UUUUUUUUUUUUUUUU FFFF01BHNBFNEFHEBHNAFOECHLAIOPCBLNIFPE
  186. VVVVVVVVVVVVVVVV FFFF01BENCFOEGHHBENDFNEBHIALOMCCLOIGPH
  187. WWWWWWWWWWWWWWWW FFFF01BFNDFPEHHGBFNCFMEAHJAKONCDLPIHPG
  188. XXXXXXXXXXXXXXXX FFFF01BKNMFAEIHJBKNNFDEPHGAFOCCMLAIIPJ
  189. YYYYYYYYYYYYYYYY FFFF01BLNNFBEJHIBLNMFCEOHHAEODCNLBIJPI
  190. ZZZZZZZZZZZZZZZZ FFFF01BINOFCEKHLBINPFBENHEAHOACOLCIKPL
  191.  
  192. aaaaaaaaaaaaaaaa FFFF01CDOFGJHBEACDOEGKHGEPDMNLBFIJLBMA
  193. bbbbbbbbbbbbbbbb FFFF01CAOGGKHCEDCAOHGJHFEMDPNIBGIKLCMD
  194. cccccccccccccccc FFFF01CBOHGLHDECCBOGGIHEENDONJBHILLDMC
  195. dddddddddddddddd FFFF01CGOAGMHEEFCGOBGPHDEKDJNOBAIMLEMF
  196. eeeeeeeeeeeeeeee FFFF01CHOBGNHFEECHOAGOHCELDINPBBINLFME
  197. ffffffffffffffff FFFF01CEOCGOHGEHCEODGNHBEIDLNMBCIOLGMH
  198. gggggggggggggggg FFFF01CFODGPHHEGCFOCGMHAEJDKNNBDIPLHMG
  199. hhhhhhhhhhhhhhhh FFFF01CKOMGAHIEJCKONGDHPEGDFNCBMIALIMJ
  200. iiiiiiiiiiiiiiii FFFF01CLONGBHJEICLOMGCHOEHDENDBNIBLJMI
  201. jjjjjjjjjjjjjjjj FFFF01CIOOGCHKELCIOPGBHNEEDHNABOICLKML
  202. kkkkkkkkkkkkkkkk FFFF01CJOPGDHLEKCJOOGAHMEFDGNBBPIDLLMK
  203. llllllllllllllll FFFF01COOIGEHMENCOOJGHHLECDBNGBIIELMMN
  204. mmmmmmmmmmmmmmmm FFFF01CPOJGFHNEMCPOIGGHKEDDANHBJIFLNMM
  205. nnnnnnnnnnnnnnnn FFFF01CMOKGGHOEPCMOLGFHJEADDNEBKIGLOMP
  206. oooooooooooooooo FFFF01CNOLGHHPEOCNOKGEHIEBDCNFBLIHLPMO
  207. pppppppppppppppp FFFF01DCPEHIGAFBDCPFHLGHFOCNMKAEJIKANB
  208. qqqqqqqqqqqqqqqq FFFF01DDPFHJGBFADDPEHKGGFPCMMLAFJJKBNA
  209. rrrrrrrrrrrrrrrr FFFF01DAPGHKGCFDDAPHHJGFFMCPMIAGJKKCND
  210. ssssssssssssssss FFFF01DBPHHLGDFCDBPGHIGEFNCOMJAHJLKDNC
  211. tttttttttttttttt FFFF01DGPAHMGEFFDGPBHPGDFKCJMOAAJMKENF
  212. uuuuuuuuuuuuuuuu FFFF01DHPBHNGFFEDHPAHOGCFLCIMPABJNKFNE
  213. vvvvvvvvvvvvvvvv FFFF01DEPCHOGGFHDEPDHNGBFICLMMACJOKGNH
  214. wwwwwwwwwwwwwwww FFFF01DFPDHPGHFGDFPCHMGAFJCKMNADJPKHNG
  215. xxxxxxxxxxxxxxxx FFFF01DKPMHAGIFJDKPNHDGPFGCFMCAMJAKINJ
  216. yyyyyyyyyyyyyyyy FFFF01DLPNHBGJFIDLPMHCGOFHCEMDANJBKJNI
  217. zzzzzzzzzzzzzzzz FFFF01DIPOHCGKFLDIPPHBGNFECHMAAOJCKKNL
  218. _____________________________________________________________________________
  219.  
  220. Keep in mind that the password must be a minimum of 4 characters and a maximum
  221. of 16 characters.
  222.  
  223. Let's dissect the encrypted output.
  224.  
  225. AAAAAAAAAAAAAAAA = FFFF01ADMFEJFBGAADMEEKFGGPBMPLDFKJJBOA
  226.  
  227. FFFF01
  228. Always present; This means that it can be ignored in the decrypting process.
  229.  
  230. AD MF EJ FB GA AD ME EK FG GP BM PL DF KJ JB OA
  231. The remaining string is the password. Notice that two capital letters are used to
  232. replace each character of the password.
  233.  
  234. AMEFGAMEFGBPDKJO
  235. DFJBADEKGPMLFJBA
  236. This is what we get if we seperate the colors into two different strings.
  237.  
  238. aaaaaaaaaaaaaaaa = FFFF01CDOFGJHBEACDOEGKHGEPDMNLBFIJLBMA
  239.                          CDOFGJHBEACDOEGKHGEPDMNLBFIJLBMA
  240. COGHECOGHEDNBILM
  241. DFJBADEKGPMLFJBA
  242. I did the same thing with the lower case 'a' and look what I got. Do you notice
  243. anything? HMMmmm? The red strings are indentical! This means that for each place
  244. in the string (Whether it's the first character, the fifth, or whatever), the red
  245. letters define an 'a' and the blue letters define it's case (upper or lower).
  246.  
  247. Now, there are two sets of blue strings in the outputs of the uppercase letters.
  248. The first set appears in letters A-O and the second set appear in letters P-Z.
  249. (This could be because P is the 16th letter of the alphabet and hex is base 16 or
  250. that could just be a coincidence.) There are also two sets of strings in the lower
  251. case letters. They are also divided into a-o & p-z. Then there is one more string
  252. for the numbers. 
  253.  
  254. I'm going to use this to set up a simple substition method of decrypting the 
  255. passwords. The method that I will set up will only work for letters and numbers.
  256. If the password can contain (Which I doubt.) any other characters (like: °ô¢ßï, etc.)
  257. this method will not be able to decrypt them. This is because I didn't bother with
  258. the rest of the ASCII characters in order to save time and so the program would be
  259. faster.
  260.  
  261. CHART 1:
  262. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  = place numbers
  263. A M E F G A M E F  G  B  P  D  K  J  O  = A-N
  264. B N F E H B N F E  H  A  O  C  L  I  P  = P-Z
  265. C O G H E C O G H  E  D  N  B  I  L  M  = a-n
  266. D P H G F D P H G  F  C  M  A  J  K  N  = p-z
  267. H L D C B H L D C  B  G  I  E  N  O  J  = Numbers
  268.  
  269. CB MF EJ FB GA AD ME EK FG GP BM PL DF KJ JB OA
  270. You divide the string into groups of two. One group for each letter in the password.
  271. You take the first letter of the group and it's corresponding place number and find
  272. it on the chart above. That will narrow it down. Here's an example: the first
  273. encrypted digit is "CB". If we look up "C" on the chart in the first place we find
  274.  
  275. that it's in the range of a-n. That means that the character is lower case and is
  276.  
  277. found between a-n in the alphabet.
  278.  
  279. Now we take the second letter of the two letter group along with it's place number
  280.  
  281. and find it in this chart:
  282.  
  283. CHART 2:
  284. Line   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 = Place Numbers
  285. (1)  = D F J B A D E K G P  M  L  F  J  B  A  = a
  286. (2)  = A G K C D A H J F M  P  I  G  K  C  D  = b
  287. (3)  = B H L D C B G I E N  O  J  H  L  D  C  = c
  288. (4)  = G A M E F G B P D K  J  O  A  M  E  F  = d
  289. (5)  = H B N F E H A O C L  I  P  B  N  F  E  = e
  290. (6)  = E C O G H E D N B I  L  M  C  O  G  H  = f
  291. (7)  = F D P H G F C M A J  K  N  D  P  H  G  = g
  292. (8)  = K M A I J K N D P G  F  C  M  A  I  J  = h
  293. (9)  = L N B J I L M C O H  E  D  N  B  J  I  = i
  294. (10) = I O C K L I P B N E  H  A  O  C  K  L  = j
  295. (11) = J P D L K J O A M F  G  B  P  D  L  K  = k
  296. (12) = O I E M N O J H L C  B  G  I  E  M  N  = l
  297. (13) = P J F N M P I G K D  A  H  J  F  N  M  = m
  298. (14) = M K G O P M L F J A  D  E  K  G  O  P  = n
  299. (15) = N L H P O N K E I B  C  F  L  H  P  O  = o
  300. (16) = C E I A B C F L H O  N  K  E  I  A  B  = p
  301. (17) = D F J B A D E K G P  M  L  F  J  B  A  = q
  302. (18) = A G K C D A H J F M  P  I  G  K  C  D  = r
  303. (19) = B H L D C B G I E N  O  J  H  L  D  C  = s
  304. (20) = G A M E F G B P D K  J  O  A  M  E  F  = t
  305. (21) = H B N F E H A O C L  I  P  B  N  F  E  = u
  306. (22) = E C O G H E D N B I  L  M  C  O  G  H  = v
  307. (23) = F D P H G F C M A J  K  N  D  P  H  G  = w
  308. (24) = K M A I J K N D P G  F  C  M  A  I  J  = x
  309. (25) = L N B J I L M C O H  E  D  N  B  J  I  = y
  310. (26) = I O C K L I P B N E  H  A  O  C  K  L  = z
  311. (27) = C E I A B C F L H O  N  K  E  I  A  B  = 0
  312. (28) = D F J B A D E K G P  M  L  F  J  B  A  = 1
  313. (29) = A G K C D A H J F M  P  I  G  K  C  D  = 2
  314. (30) = B H L D C B G I E N  O  J  H  L  D  C  = 3
  315. (31) = G A M E F G B P D K  J  O  A  M  E  F  = 4
  316. (32) = H B N F E H A O C L  I  P  B  N  F  E  = 5
  317. (33) = E C O G H E D N B I  L  M  C  O  G  H  = 6
  318. (34) = F D P H G F C M A J  K  N  D  P  H  G  = 7
  319. (35) = K M A I J K N D P G  F  C  M  A  I  J  = 8
  320. (36) = L N B J I L M C O H  E  D  N  B  J  I  = 9
  321.  
  322. Using the same example: "CB" Since we found that "C" on CHART 1 was lowercase 
  323. between a-n we will only look through letters a-n on CHART 2 (Lines 1-15).
  324. (I generated this chart using the second input/output table. I removed all 
  325. the odd characters and kept the even ones.) Now, we look for "B" in the first 
  326. row. It's found at line 3 which  equals- "c" That's the first character of our 
  327. password. To find the rest of the characters, repeat this process.
  328.  
  329. I hope that you can understand this after reading it through once or twice. It 
  330. was a lot harder to explain than to crack. It sure was a lot of fun though...
  331.  
  332.  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  333.  M                                  |                                         M
  334.  M  %%%                         %%% | You Can Find <a href="mailto:s0ftw@re">s0ftw@re</a> and               M
  335.  M  %%          %%               %% | Philes From ÿwEST of [stw] at:          M
  336.  M  %%          %%               %% |                                         M
  337.  M  %%    %%%  %%%% %%  %%  %%   %% | The Web:                                M
  338.  M  %%   %%  %  %%  %%  %%  %%   %% | <a href="http://www.geocities.com/SiliconValley/">http://www.geocities.com/SiliconValley/</a> M
  339.  M  %%   %%%    %%  %%  %%  %%   %% |        Circuit/1924/                    M
  340.  M  %%    %%%   %%  %%  %%  %%   %% |                                         M
  341.  M  %%     %%%  %%  %%  %%  %%   %% | <a href="http://members.tripod.com/sucktoewarts">http://members.tripod.com/sucktoewarts</a>  M
  342.  M  %%   %  %%  %%  %%  %%  %    %% |                                         M
  343.  M  %%    %%%    %% %%%%%%%%     %% | Hotline: xxxxx & xxxxxxxxxx            
  344. M
  345.  M  %%%                         %%% |                                         M
  346.  M                                  |                                         M
  347.  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  348.  
  349.